package com.arron.algorithm.leetcodetop100.数组;


/**
 * 合并有序数组
 */
public class 合并有序数组 {


    public static void main(String[] args) {

    }


    /**
     * 使用从尾到头倒着遍历，无需产生临时数组
     * @param nums1
     * @param m
     * @param nums2
     * @param n
     */
    public void merge(int[] nums1, int m, int[] nums2, int n) {

        int k = m+n;

        for (int nums1Index = m-1,nums2Index=n-1,index = k-1; index >=0; index--) {

            if (nums1Index <0){
                nums1[index] =nums2[nums2Index--];
            }else if(nums2Index <0){
                break;
            }else if(nums1[nums1Index] > nums2[nums2Index]){
                nums1[index] = nums1[nums1Index--];
            }else {
                nums1[index] = nums2[nums2Index--];
            }

        }


    }

}
